草庐IT

c++ - CppUnit泄漏

全部标签

c# - npgsql 泄漏 Postgres 数据库连接 : Way to monitor connections?

背景:我正在将我的应用程序从npgsqlv1迁移到npgsqlv2.0.9。运行我的应用程序几分钟后,我收到System.Exception:从池中获取连接时超时。网络声称这是由于连接泄漏(打开数据库连接,但没有正确关闭它们)造成的。所以我正在尝试诊断npgsql中泄漏的postgres连接。来自身边的各种网络文学;诊断泄漏连接的一种方法是在npgsql上设置日志记录,并在日志中查找泄漏连接警告消息。问题是,我在任何地方的日志中都没有看到这条消息。我还找到了监视npgsql连接的实用程序,但它不稳定并且会崩溃。所以我只能手动检查代码。对于创建npgsql连接的每个地方,都有一个fina

c# - 编译的表达式树会泄漏吗?

据我所知,JIT代码在程序运行时永远不会从内存中释放。这是否意味着在表达式树上重复调用.Compile()会泄漏内存?这意味着只在静态构造函数中编译表达式树或以其他方式缓存它们,这可能并不那么简单。对吧? 最佳答案 它们可能是GCed...LambdaExpression.Compile()使用LambdaCompiler.Compile(LambdaExpression,DebugInfoGenerator)类,即throughoneoftheLambdaCompilerconstructors使用DynamicMethod那,来

c# - ListCollectionView 是否泄漏内存?

我一直在研究如何避免因View模型中对INotifyCollectionChanged事件的强引用而导致的内存泄漏。我正在尝试使用ListCollectionView看看它是否适合我。我认为以下是内存泄漏,我做错了吗?varstuff=newObservableCollection();while(true){varresult=newListCollectionView(stuff);//JusttokeepmakesurethatthememoryI'mseeing//isn'twaitingtobeGC'dGC.Collect();} 最佳答案

c# - Master-Details View 中的 RenderTargetBitmap GDI 句柄泄漏

我有一个带有主从View的应用程序。当您从“主”列表中选择一个项目时,它会使用一些图像(通过RenderTargetBitmap创建)填充“详细信息”区域。每次我从列表中选择不同的主项时,我的应用程序使用的GDI句柄数量(如ProcessExplorer中所报告)都会增加-并最终下降(或有时锁定)在10,000个GDI句柄处使用。我不知道如何解决这个问题,因此非常感谢任何关于我做错了什么的建议(或者只是关于如何获取更多信息的建议)。我在名为“DoesThisLeak”的新WPF应用程序(.NET4.0)中将我的应用程序简化为以下内容:在MainWindow.xaml.cs中public

c# - 用 C# "out parameters"嵌入单声道

我正在尝试使用libmono将C#类嵌入到C应用程序中,但文档有点缺乏。我正在尝试调用原型(prototype)为voidMessageToSend(outMessageObjectmessage);的方法我如何表示“输出参数”?它是指向MonoObject的指针吗?谢谢。附言。就libmono而言,'out'和'ref'参数是否相同? 最佳答案 你是对的,它是MonoObject**。out和ref除了C#编译器之外几乎所有东西都是一样的。 关于c#-用C#"outparameters

c# - 在 C# 中使用 C/内联汇编

是否有一些方法可以在C#应用程序中混合使用C源代码和内联asm(这不是C++代码)?我对它是如何完成的并不挑剔,如果它需要将C/asm编译成与C#应用程序一起的DLL,那就这样吧。我知道在C#中没有使用程序集的规定,因此出现了这个问题。我要合并的示例代码:SomeFunc(unsignedchar*outputData,unsignedchar*inputData,unsignedlonginputDataLength){_asm{//AssemblycodethatprocessesinputDataandstoresresultinoutputData}}在声明该函数之前,C代码中

c# - 追踪 .NET Windows 服务内存泄漏

在生产环境中安装我的Windows服务之前,我一直在寻找可以执行的可靠测试,以确保我的代码不包含内存泄漏。但是,我在网上能找到的所有内容都是使用任务管理器查看已用内存或一些付费内存分析器工具。根据我的理解,查看任务管理器并没有多大帮助,也无法确认内存泄漏(以防万一)。如何确认是否有内存泄漏?有没有免费的工具可以找到内存泄漏的根源?注意:我使用的是.NetFramework4.6和VisualStudio2015Community 最佳答案 您可以使用任务管理器。GC应用程序可能会泄漏内存,它会在那里显示。但是……免费工具-“.Net

c# - 为什么要调用 Dispose()?不会发生内存泄漏?

编辑:我的问题没有得到我正在寻找的主要答案。我不清楚。我真的很想知道两件事:不能调用Dispose()会导致内存泄漏吗?如果您有一个大型程序并且从不对任何IDisposable对象调用Dispose(),那么最糟糕的事情是什么?我的印象是,如果未对IDisposable对象调用Dispose(),可能会发生内存泄漏。根据关于此thread的讨论,我的看法是不正确的;如果未调用Dispose(),则不会发生内存泄漏。那为什么还要调用Dispose()呢?是否只是立即释放资源,而不是稍后释放资源?如果您有一个大型程序并且从不对任何IDisposable对象调用Dispose(),那么最糟糕

c# - 通过编写 C dll 来加速 C# 中的数学代码?

我有一个非常大的嵌套for循环,其中对float执行一些乘法和加法。for(inti=0;i这个循环占用了我大部分的处理时间,是一个瓶颈。如果我用C重写这个循环并从C#连接到它,我是否会看到任何速度提升?编辑:我更新了代码以显示s和c是如何生成的。此外,内部循环实际上是从0到i,尽管它可能对问题没有太大影响EDIT2:我在VC++中实现了该算法,并通过dll将其与C#链接,并且在启用所有优化后,速度比C#提高了28%。启用SSE2的论点特别有效。使用MinGW和gcc4.4编译只提供了15%的速度提升。刚刚试用了英特尔编译器,发现这段代码的速度提高了49%。

c# - 托管代码中是否可能发生内存泄漏? (特别是 C# 3.0)

例如,如果我有一个分层数据结构:classNode{publicListchildren;}它被填充到许多层次,然后在其中一个parent去:myNode.children.Clear();这将清除所有对直系子代的引用——但是那些直系子代引用的所有孙代、曾孙代等又如何呢?C#是否足够聪明,知道它们不再需要并且将被垃圾收集?我读过使用WPF数据绑定(bind)而不实现接口(interface)INotifyChanged会导致内存泄漏:http://blogs.msdn.com/b/micmcd/archive/2008/03/07/avoiding-a-wpf-memory-leak-